<ui:composition xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.org/ui"
	template="/facelets/templates/zona-privada-principal.xhtml">

	<ui:define name="title"> Gesti&#243;n de modelos </ui:define>

	<ui:define name="content">
		<p:growl id="growl" showDetail="true" sticky="false" globalOnly="true" />
		<h:form styleClass="ui-widget" id="busqueda" prependId="false">
			<div id="sub-header">
				<div id="nameForm">Gesti&#243;n de modelos</div>

				<div id="toolBar">
					<p:commandLink action="#{gestionModeloController.buscar}"
						id="buscar" process="@this, panelGroupFiltro"
						update="panelGroupResultado" >
						<h:graphicImage library="images" name="buscar.png"
							styleClass="toolbar-icon" alt="Buscar" title="Buscar" />
					</p:commandLink>

					<p:spacer width="10px" />

					<p:commandLink action="#{gestionModeloController.limpiarFiltro}"
						process="@this" update="panelGroupFiltro" global="false">
						<h:graphicImage library="images" name="limpiar.png"
							styleClass="toolbar-icon" alt="Limpiar" title="Limpiar" />
					</p:commandLink>

					<p:spacer width="10px" />

					<p:defaultCommand target="buscar" />
				</div>
			</div>

			<div id="content">

				<div class="panel-filtro">
					<h:panelGroup id="panelGroupFiltro">
						<p:panelGrid columns="6">

							<h:outputLabel value="Marca: " styleClass="label-general" />
							<p:selectOneMenu id="marcaBuscar" filter="true" filterMatchMode="contains"
											 value="#{gestionModeloController.modeloFabricaBeanForm.marca}"
											 styleClass="select-general">
								<f:selectItem itemLabel="Seleccione" itemValue="-1" />
								<f:selectItems value="#{gestionModeloController.listadoMarca}" var="marca"
											   itemValue="#{marca.scodigo}" itemLabel="#{marca.nombre}"/>
							</p:selectOneMenu>

							<h:outputLabel value="Tipo componente: " styleClass="label-general" />
							<p:selectOneMenu id="tipoCompoBuscar" filter="true" filterMatchMode="contains"
											 value="#{gestionModeloController.modeloFabricaBeanForm.tipoComponente}"
											 styleClass="select-general">
								<f:selectItem itemLabel="Seleccione" itemValue="-1" />
								<f:selectItems value="#{gestionModeloController.listadoTipoComponente}" var="tipo"
											   itemValue="#{tipo.scodigo}" itemLabel="#{tipo.nombre}"/>
							</p:selectOneMenu>

							<h:outputLabel value="C&#243;digo modelo: " styleClass="label-general" />
							<p:inputText maxlength="50" value="#{gestionModeloController.modeloFabricaBeanForm.codigo}"
										 styleClass="input-general" />
							
							<h:outputLabel value="Descripci&#243;n: " styleClass="label-general" />
							<p:inputText maxlength="50" value="#{gestionModeloController.modeloFabricaBeanForm.descripcion}"
										 styleClass="input-general" />
										 
						</p:panelGrid>
					</h:panelGroup>
				</div>

				<p:spacer height="10px" />

				<div class="divResultados">
					<h:panelGroup id="panelGroupResultado">
						<p:dataTable id="dtModelo" var="model" value="#{gestionModeloController.listadoModeloGestion}"
									 emptyMessage="" paginator="true"
									 rows="10" paginatorPosition="top"
									 paginatorTemplate="{FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"
									 currentPageReportTemplate="{currentPage} de {totalPages}">

							<p:column sortBy="#{model.marca}" headerText="Marca">
								<h:outputText value="#{model.nombreMarca}" />
							</p:column>

							<p:column sortBy="#{model.componente}" headerText="Componente">
								<h:outputText value="#{model.nombreComponente}" />
							</p:column>
							
							<p:column sortBy="#{model.idModelo}" headerText="C&#243;digo Modelo">
								<h:outputText value="#{model.idModeloFabrica}" />
							</p:column>
							
							<p:column sortBy="#{model.modelo}" headerText="Modelo">
								<h:outputText value="#{model.nombre}" />
							</p:column>
							
							<p:column styleClass="boton-data-table-centrado">
								<p:commandLink action="#{gestionModeloController.seleccionarModelo(model)}"
											   process="@this"
											   oncomplete="wvPopupGestionImagenes.show()" global="false"
											   update=":formGestionImagenes">
									<h:graphicImage library="images" name="imagen.png" styleClass="icon-small" alt="Imagenes"
													title="Gesti&#243;n de Im&#225;genes" />
								</p:commandLink>
							</p:column>

							<f:facet name="footer">
								<div class="pie-cantidad-resultados">
									<h:outputText value="#{not empty gestionModeloController.listadoModeloGestion ? 
														   			 (gestionModeloController.listadoModeloGestion.size() == 1 ? 'Se encontr&#243; 1 modelo': 
														   																              'Se encontraron '.concat(gestionModeloController.listadoModeloGestion.size())
														   																                              .concat(' modelos'))
														   			 : 'No se encontraron modelos' }"/>
								</div>
							</f:facet>
						</p:dataTable>
					</h:panelGroup>
				</div>
			</div>
		</h:form>
		
		<p:dialog id="popupGestionImagenes" widgetVar="wvPopupGestionImagenes"
				  header="Im&#225;genes del subgrupo"
				  resizable="false" width="650" modal="true">
			<h:form id="formGestionImagenes" prependId="false" styleClass="ui-widget">
				<h:panelGroup id="panelGestionImagenes" layout="block">
					<div class="panel-general-popup">
						<div class="bloque">
							<h:outputLabel value="Seleccione un grupo y un subgrupo para poder agregar im&#225;genes."
										   styleClass="sugerencia" />
							<br /> <br />
							<div class="panel-filtro">
								<p:panelGrid columns="4">
									<h:outputLabel styleClass="label-general">Grupo: <span>( * )</span></h:outputLabel>
									<p:selectOneMenu id="cmbGrupoBuscar" filter="true" filterMatchMode="contains"
													 value="#{gestionModeloController.grupoSeleccionado}" styleClass="select-general">
										<f:selectItem itemLabel="Seleccione" itemValue="-1" />
										<f:selectItems var="grupo" value="#{gestionModeloController.listaGrupoImagen}"
													   itemValue="#{grupo.codigo}" itemLabel="#{grupo.nombre}" />
										<p:ajax event="change" process="@this"
												global="false" listener="#{gestionModeloController.recargarListaSubGrupo}" 
												update="cmbSubGrupoBuscar, subirArchivo"/>
									</p:selectOneMenu>

									<h:outputLabel styleClass="label-general">Subgrupo: <span>( * )</span></h:outputLabel>
									<p:selectOneMenu id="cmbSubGrupoBuscar" filter="true" filterMatchMode="contains" 
													 value="#{gestionModeloController.subGrupoSeleccionado}"
													 styleClass="select-general" disabled="#{empty gestionModeloController.listaSubGrupoImagen}">
										<f:selectItem itemLabel="Seleccione" itemValue="-1" />
										<f:selectItems var="subgrupo" value="#{gestionModeloController.listaSubGrupoImagen}"
													   itemValue="#{subgrupo.codigo}" itemLabel="#{subgrupo.nombre}" />
										<p:ajax event="change" global="false" process="@this" update="subirArchivo, panelListaImagenesSubGrupoModeloSeleccionado"
												listener="#{gestionModeloController.recargarImagenes}"/>
									</p:selectOneMenu>
								</p:panelGrid>
							</div>
							<br />
							<div>
								<p:fileUpload id="subirArchivo" fileUploadListener="#{gestionModeloController.subirArchivo}"
											  mode="advance" label="A&#241;adir" uploadLabel="Cargar"
											  cancelLabel="Cancelar" process="@this"
											  update=":growl, panelListaImagenesSubGrupoModeloSeleccionado"
											  sizeLimit="1000000" allowTypes="/(\.|\/)(pdf|jpe?g)$/"
											  disabled="#{(empty gestionModeloController.subGrupoSeleccionado) or (gestionModeloController.subGrupoSeleccionado eq -1) or (empty gestionModeloController.listaSubGrupoImagen)}" />
							</div>
						</div>

						<div style="margin-bottom: 10px;" class="bloque">
							<br /> <br />
							<h:outputLabel value="Im&#225;genes del subgrupo seg&#250;n marca, tipo de componente y modelo de f&#225;brica."
										   styleClass="sugerencia" />
							<br /> <br />
							<div>
								<h:panelGroup id="panelListaImagenesSubGrupoModeloSeleccionado" layout="block">
									<p:dataTable id="tblImagenes" var="imagen" value="#{gestionModeloController.listaImagenesSubGrupoSeleccionado}"
												 rowKey="#{imagen.idImagen}" emptyMessage="" paginator="true"
												 paginatorPosition="top" rows="5"
												 currentPageReportTemplate="{currentPage} de {totalPages}"
												 paginatorTemplate="{FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}">

										<p:column styleClass="centrar-contenido" headerText="Tipo de imagen" 
												  sortBy="#{imagen.orden}">
											<h:graphicImage library="images" name="#{imagen.tipo}.png" />
										</p:column>

										<p:column sortFunction="#{ordenarDatatable.ordernar}" headerText="Nombre archivo" 
												  sortBy="#{imagen.nombreArchivo}">
											<h:outputText value="#{imagen.nombreArchivo}" />
										</p:column>

										<p:column sortFunction="#{ordenarDatatable.ordernar}" headerText="Estado" 
												  sortBy="#{imagen.estado}">
											<h:outputText value="#{imagen.estado}">
												<f:converter converterId="estadoConverter" />
											</h:outputText>
										</p:column>

										<p:column styleClass="boton-data-table-centrado">
											<p:commandLink action="#{gestionModeloController.seleccionarImagenGestionRepuestos}"
														   process=":formGestionImagenes:panelListaImagenesSubGrupoModeloSeleccionado"
														   oncomplete="wvLoad.hide();wvPopupGestionRepuestos.show();tamanioImagenInicial('scroll-image','imagen-vista-previa');"
														   onstart="wvLoad.show()" global="false" update=":formRepuestosImagenes:panelGestionRepuestos">
												<p:graphicImage library="images" name="repuesto.png" styleClass="icon-small" alt="Repuestos"
																title="Gesti&#243;n de repuestos de la imagen" />
												<f:setPropertyActionListener value="#{imagen}" target="#{gestionModeloController.imagenSeleccionadaGestionRepuestos}" />
											</p:commandLink>
										</p:column>

										<p:column styleClass="boton-data-table-centrado">
											<f:facet name="header">
												<h:outputText value=" " />
											</f:facet>
											<p:commandLink process=":formGestionImagenes:panelListaImagenesSubGrupoModeloSeleccionado"
														   oncomplete="wvPopupEditarImagen.show();" global="false"
														   update=":form:panelEditarImagen">
												<p:graphicImage library="images" name="editar.png" styleClass="icon-small" alt="Editar" title="Editar" />
												<f:setPropertyActionListener value="#{imagen}" target="#{gestionModeloController.imagenEditar}" />
											</p:commandLink>
										</p:column>
										<p:column styleClass="boton-data-table-centrado">
											<f:facet name="header">
												<h:outputText value=" " />
											</f:facet>
											<p:commandLink immediate="true" global="false" oncomplete="wvPopupEliminarImagen.show();"
														   update=":form:panelEliminarImagen">
												<p:graphicImage library="images" name="eliminar.png" styleClass="icon-small" alt="Eliminar"
																title="Eliminar imagen" />
												<f:setPropertyActionListener value="#{imagen}" target="#{gestionModeloController.imagenEliminar}" />
											</p:commandLink>
										</p:column>
										<f:facet name="footer">
											<div class="pie-cantidad-resultados">
												<h:outputText value="#{not empty gestionModeloController.listaImagenesSubGrupoSeleccionado ? 
														   			 (gestionModeloController.listaImagenesSubGrupoSeleccionado.size() == 1 ? 'Se encontr&#243; 1 imagen para esta marca, tipo de componente y modelo de f&#225;brica.': 
														   						'Se encontraron '.concat(gestionModeloController.listaImagenesSubGrupoSeleccionado.size()).concat(' im&#225;genes para esta marca, tipo de componente y modelo de f&#225;brica.'))
														   			 			: 'No se encontraron im&#225;genes para esta marca, tipo de componente y modelo de f&#225;brica.' }"/>
											</div>
										</f:facet>
									</p:dataTable>
								</h:panelGroup>
							</div>
							<span>&#160;</span>
							<div align="center">
								<p:commandButton value="Salir" global="false" icon="ui-icon-arrowreturn-1-w" process="@this"
									styleClass="buton-general" oncomplete="wvPopupGestionImagenes.hide()" />
							</div>
						</div>
					</div>
				</h:panelGroup>
			</h:form>  
		</p:dialog>
		
		<h:form styleClass="ui-widget" id="form" prependId="false">
			<p:dialog id="popupEditarImagen" widgetVar="wvPopupEditarImagen"
					  closable="true" header="Editar imagen"
					  modal="true" resizable="false">
				<div class="panel-general-popup">
					<h:panelGroup id="panelEditarImagen">
						<div class="panel-formulario">
							<p:panelGrid columns="2">
								<h:outputLabel styleClass="label-general" value="Tipo de imagen: " />
								<p:graphicImage library="images" name="#{gestionModeloController.imagenEditar.tipo}.png" />

								<h:outputLabel styleClass="label-general">Nombre archivo: </h:outputLabel>

								<h:outputText styleClass="texto-general" value="#{gestionModeloController.imagenEditar.nombreArchivo}" />

								<h:outputLabel styleClass="label-general">Estado: <span>( * )</span></h:outputLabel>
								<p:selectOneMenu id="estadoImagenEditar" styleClass="select-general"
												 value="#{gestionModeloController.imagenEditar.estado}">
									<f:selectItem itemLabel="Seleccione" itemValue="-1" />
									<f:selectItem itemLabel="Activo" itemValue="A" />
									<f:selectItem itemLabel="Inactivo" itemValue="I" />
								</p:selectOneMenu>
							</p:panelGrid>
						</div>

						<div class="panel-botones" align="center">
							<p:commandButton value="Guardar"
								action="#{gestionModeloController.editarImagen}"
								update=":formGestionImagenes:panelListaImagenesSubGrupoModeloSeleccionado, panelMessages, :growl"
								process="panelEditarImagen" icon="ui-icon ui-icon-disk"
								oncomplete="ocultarDialogSiOperacionEsCorrecta(xhr, status, args, wvPopupEditarImagen);"
								styleClass="buton-general" />
							<span>&#160;</span>
							<p:commandButton value="Cancelar" global="false"
								onclick="wvPopupEditarImagen.hide()" process="@this"
								icon="ui-icon ui-icon-arrowreturn-1-w"
								styleClass="buton-general" />
						</div>

						<div class="panelMessages">
							<h:panelGroup id="panelMessages">

							</h:panelGroup>
						</div>
					</h:panelGroup>
				</div>
			</p:dialog>
		
			<p:dialog id="popupEliminarImagen" widgetVar="wvPopupEliminarImagen"
					  closable="true" header="Eliminar imagen"
					  modal="true" resizable="false">

				<h:panelGroup id="panelEliminarImagen">
					<div class="panelEliminar">
						<h:outputText
							value=" &#191;Est&#225; seguro de eliminar la imagen?" />
					</div>
					<div class="panel-botones" align="center">
						<p:commandButton value="S&#237;"
							action="#{gestionModeloController.eliminarImagen}"
							update=":formGestionImagenes:tblImagenes, :growl"
							process="@this" icon="ui-icon ui-icon-check"
							oncomplete="wvPopupEliminarImagen.hide()"
							styleClass="buton-general" />
						<span>&#160;</span>
						<p:commandButton value="No" onclick="wvPopupEliminarImagen.hide()"
							icon="ui-icon ui-icon-close" styleClass="buton-general" />
					</div>
				</h:panelGroup>
			</p:dialog>
		</h:form>
		
		<h:form styleClass="ui-widget" id="formRepuestosImagenes" prependId="false">
			<p:dialog id="popupGestionRepuestosImagenes" widgetVar="wvPopupGestionRepuestos"
				  	  header="Gesti&#243;n de repuestos de imagen" resizable="false" 
				  	  modal="true" height="600">
				<h:panelGroup id="panelGestionRepuestos">
					<div id="panelGestionImagenRepuestos">
						<div class="bloque">
							<div class="izquierda gestion-repuestos-imagenes">
								<div class="margen-contenido">
	
									<div class="bloque">
										<h:outputLabel value="Datos de la imagen"
											styleClass="titulo-sub-contenido" />
									</div>
									<div class="linea"></div>
	
									<div style="margin-top: 10px;" class="panel-filtro"
										align="center">
										<p:panelGrid columns="2">
	
											<h:outputLabel value="Marca: " styleClass="label-general" />
											<h:outputText styleClass="texto-general" value="#{gestionModeloController.imagenSeleccionadaGestionRepuestos.modeloFabrica.marca.nombre}" />
	
											<h:outputLabel value="Tipo componente: " styleClass="label-general" />
											<h:outputText styleClass="texto-general" value="#{gestionModeloController.imagenSeleccionadaGestionRepuestos.modeloFabrica.tipoComponente.nombre}" />
											
											<h:outputLabel value="Grupo: " styleClass="label-general" />
											<h:outputText styleClass="texto-general" value="#{gestionModeloController.imagenSeleccionadaGestionRepuestos.subGrupo.grupo.nombre}" />
	
											<h:outputLabel value="Subgrupo: " styleClass="label-general" />
											<h:outputText styleClass="texto-general" value="#{gestionModeloController.imagenSeleccionadaGestionRepuestos.subGrupo.nombre}" />
											
											<h:outputLabel value="Modelo: " styleClass="label-general" />
											<h:outputText styleClass="texto-general" value="#{gestionModeloController.imagenSeleccionadaGestionRepuestos.modeloFabrica.nombre}" />
	
											<h:outputLabel value="Nombre archivo: " styleClass="label-general" />
											<h:outputText styleClass="texto-general" value="#{gestionModeloController.imagenSeleccionadaGestionRepuestos.nombreArchivo}" />
	
										</p:panelGrid>
									</div>
	
									<div class="bloque">
										<p:spacer height="40px" />
									</div>
									<div class="header-sub-titulo">
										<div class="sub-titulo">
											<h:outputLabel value="Filtro de b&#250;squeda" styleClass="titulo-sub-contenido" />
										</div>
										<div id="sub-toolBar" class="toolBar">
											<p:commandLink id="buscarRepuestos" styleClass="butonSmall" 
														   action="#{gestionModeloController.buscarRepuestos}"
														   update="panelResultadosBusquedaRepuestos, :growl"
														   process="@this, panelFiltroRepuestos">
												<h:graphicImage library="images" name="buscar.png" styleClass="toolbar-icon" alt="Buscar" title="Buscar" />
											</p:commandLink>
	
											<p:spacer width="10px" />
											<p:commandLink styleClass="butonSmall" global="false"
														   action="#{gestionModeloController.limpiarFiltroRepuestos}"
														   update="panelFiltroRepuestos" process="@this">
												<h:graphicImage library="images" name="limpiar.png" styleClass="toolbar-icon" alt="Limpiar" title="Limpiar" />
											</p:commandLink>
	
											<p:defaultCommand target="buscarRepuestos" />
										</div>
									</div>
	
									<div class="linea"></div>
	
									<div style="margin-top: 10px;" class="panel-filtro"
										align="center">
										<h:panelGroup id="panelFiltroRepuestos">
											<p:panelGrid columns="2">
	
												<h:outputLabel value="C&#243;digo: " styleClass="label-general" />
												<p:inputText value="#{gestionModeloController.repuestoFiltro.codigo}" />
	
												<h:outputLabel value="Descripci&#243;n: " styleClass="label-general" />
												<p:inputText value="#{gestionModeloController.repuestoFiltro.nombre}" />
	
											</p:panelGrid>
	
											<div class="bloque">
												<p:spacer height="5px" />
											</div>
										</h:panelGroup>
									</div>
								</div>
							</div>
	
							<div class="derecha gestion-repuestos-imagenes">
								<div class="margen-contenido">
									<h:panelGroup id="panelScrollImagen"
										rendered="#{gestionModeloController.imagenSeleccionadaGestionRepuestos.tipo == 'IMG'}">
										<div id="container-image-scroll" class="scroll-image"
											align="center">
											<p:graphicImage id="image-scroll"
												value="/imagen/servidor/?nombreArchivo=#{gestionModeloController.imagenSeleccionadaGestionRepuestos.nombreArchivo}&#38;tipo=imagen"
												styleClass="imagen-vista-previa" />
										</div>
	
										<div class="botones-scroll-image">
											<p:commandLink oncomplete="zoomTodoImagen('scroll-image','imagen-vista-previa')"
														   process="@this" global="false">
												<p:graphicImage library="images" name="zoom-todo.png" title="Ver todo" alt="Ver todo" />
											</p:commandLink>
											<p:commandLink oncomplete="zoomOriginalImagen('imagen-vista-previa')"
														   process="@this" global="false">
												<p:graphicImage library="images" name="zoom-original.png" title="Original" alt="Original" />
											</p:commandLink>
											<p:commandLink oncomplete="zoomAlejarImagen('imagen-vista-previa')"
														   process="@this" global="false">
												<p:graphicImage library="images" name="zoom-out.png" title="Alejar" alt="Alejar" />
											</p:commandLink>
											<p:commandLink oncomplete="zoomAcercarImagen('imagen-vista-previa')"
														   process="@this" global="false">
												<p:graphicImage library="images" name="zoom-in.png" title="Acercar" alt="Acercar" />
											</p:commandLink>
										</div>
									</h:panelGroup>
	
									<p:media
										value="/pdf/servidor/?nombreArchivo=#{gestionModeloController.imagenSeleccionadaGestionRepuestos.nombreArchivo}"
										rendered="#{gestionModeloController.imagenSeleccionadaGestionRepuestos.tipo == 'PDF'}"
										styleClass="pdf-vista-previa">
										tu navegador no puede mostrar PDFs
										<h:outputLink
											value="/resources/images/imagenes/#{gestionModeloController.imagenSeleccionadaGestionRepuestos.nombreArchivo}">click</h:outputLink>descargar archivo
									</p:media>
								</div>
							</div>
						</div>
	
						<div class="bloque">
	
							<div class="izquierda gestion-repuestos-imagenes">
								<div class="margen-contenido">
									<div class="bloque">
										<p:spacer height="5px" />
									</div>
	
									<div class="bloque titulo-sub-contenido">
										<h:outputLabel value="Listado de repuestos disponibles"
											styleClass="label-general" />
									</div>
	
									<div class="bloque">
										<p:spacer height="10px" />
									</div>
	
									<div class="bloque">
										<h:panelGroup id="panelResultadosBusquedaRepuestos">
											<p:dataTable var="repuesto"
												value="#{gestionModeloController.listaRepuestosBusquedaLazy}"
												rowKey="#{repuesto.idRepuesto}" lazy="true" emptyMessage=""
												paginator="true" paginatorPosition="top" rows="5"
												paginatorTemplate="{FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"
												currentPageReportTemplate="{currentPage} de {totalPages}">
	
												<p:column sortFunction="#{ordenarDatatable.ordernar}"
													headerText="C&#243;digo" sortBy="#{repuesto.codigo}"
													style="width: 125px;">
													<h:outputText value="#{repuesto.codigo}" />
												</p:column>
	
												<p:column sortFunction="#{ordenarDatatable.ordernar}"
													headerText="Descripci&#243;n" sortBy="#{repuesto.nombre}">
													<h:outputText value="#{repuesto.nombre}" />
												</p:column>
	
												<p:column styleClass="boton-data-table-centrado">
													<p:commandLink
														action="#{gestionModeloController.limpiarRepuestoAsignar}"
														process="@this" global="false"
														oncomplete="wvPopupAsignarRepuestoImagen.show();"
														update=":formRepuestosImagenes:panelAsignarRepuestoImagen">
														<p:graphicImage library="images" name="flecha_derecha.png"
															styleClass="icon-small" alt="Asignar"
															title="Asignar repuesto a la Imagen" />
														<f:setPropertyActionListener value="#{repuesto}"
															target="#{gestionModeloController.imagenRepuestoAsignar.repuesto}" />
													</p:commandLink>
												</p:column>
	
												<f:facet name="footer">
													<div class="pie-cantidad-resultados">
														<h:outputText
															rendered="#{gestionModeloController.listaRepuestosBusquedaLazy.rowCount>0}"
															value="Se encontraron #{gestionModeloController.listaRepuestosBusquedaLazy.rowCount} repuestos." />
														<h:outputText
															rendered="#{gestionModeloController.listaRepuestosBusquedaLazy.rowCount==0}"
															value="No se encontraron repuestos." />
													</div>
												</f:facet>
											</p:dataTable>
										</h:panelGroup>
									</div>
								</div>
							</div>
	
							<div class="derecha gestion-repuestos-imagenes">
								<div class="margen-contenido">
									<div class="bloque">
										<p:spacer height="5px" />
									</div>
	
									<div class="bloque titulo-sub-contenido">
										<h:outputLabel value="Listado de repuestos asignados"
											styleClass="label-general" />
									</div>
	
									<div class="bloque">
										<p:spacer height="10px" />
									</div>
	
									<div class="bloque">
										<h:panelGroup id="panelListaRepuestosAsignadosImagen">
											<p:dataTable var="imagenRepuesto"
												value="#{gestionModeloController.listaRepuestosAsignadosImagenSeleccionada}"
												rowKey="#{imagenRepuesto.idImagenRepuesto}" emptyMessage=""
												paginatorTemplate="{FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"
												paginator="true" paginatorPosition="top" rows="5"
												currentPageReportTemplate="{currentPage} de {totalPages}">
	
												<p:column headerText="Posici&#243;n"
													sortBy="#{imagenRepuesto.posicion}"
													style="width: 100px;text-align:right;">
													<h:outputText value="#{imagenRepuesto.posicion}" />
												</p:column>
	
												<p:column sortFunction="#{ordenarDatatable.ordernar}"
													headerText="C&#243;digo"
													sortBy="#{imagenRepuesto.repuesto.codigo}"
													style="width: 125px;">
													<h:outputText value="#{imagenRepuesto.repuesto.codigo}" />
												</p:column>
	
												<p:column sortFunction="#{ordenarDatatable.ordernar}"
													headerText="Descripci&#243;n"
													sortBy="#{imagenRepuesto.repuesto.nombre}">
													<h:outputText
														value="#{imagenRepuesto.repuesto.nombre} #{imagenRepuesto.observacion}" />
												</p:column>
	
												<p:column sortFunction="#{ordenarDatatable.ordernar}"
													headerText="Cant. Ref."
													style="text-align:right;width: 125px;"
													sortBy="#{imagenRepuesto.cantidadReferencial}">
													<h:outputText value="#{imagenRepuesto.cantidadReferencial}" />
												</p:column>
	
												<p:column sortFunction="#{ordenarDatatable.ordernar}"
													headerText="Estado" style="width: 125px;"
													sortBy="#{imagenRepuesto.estado}">
													<h:outputText value="#{imagenRepuesto.estado}">
														<f:converter converterId="estadoConverter" />
													</h:outputText>
												</p:column>
												
												<p:column styleClass="boton-data-table-centrado">
													<p:commandLink action="#{gestionModeloController.listarImagenRepuestoNroSA(imagenRepuesto)}"
																   process="@this" update=":frmNumeroSa" 
																   oncomplete="wvPopUpAsignarNumero.show()">
														<p:graphicImage library="images" name="list_num.png" alt="N&#250;meros SA" title="N&#250;meros SA" />
													</p:commandLink>
												</p:column>
	
												<p:column styleClass="boton-data-table-centrado">
													<p:commandLink global="false"
														process=":formRepuestosImagenes:panelListaRepuestosAsignadosImagen"
														oncomplete="wvPopupEditarImagenRepuesto.show();"
														update=":formRepuestosImagenes:panelEditarImagenRepuesto">
														<p:graphicImage library="images" name="editar.png"
															styleClass="icon-small" alt="Editar" title="Editar" />
														<f:setPropertyActionListener value="#{imagenRepuesto}" target="#{gestionModeloController.imagenRepuestoEditar}" />
													</p:commandLink>
												</p:column>
	
												<p:column styleClass="boton-data-table-centrado">
													<p:commandLink immediate="true" global="false"
																   oncomplete="wvPopupEliminarImagenRepuesto.show();"
																   update=":formRepuestosImagenes:panelEliminarImagenRepuesto">
														<p:graphicImage library="images" name="eliminar.png"
																		styleClass="icon-small" alt="Desasignar"
																		title="Desasignar" />
														<f:setPropertyActionListener value="#{imagenRepuesto}" target="#{gestionModeloController.imagenRepuestoDesasignar}" />
													</p:commandLink>
												</p:column>
												<f:facet name="footer">
													<div class="pie-cantidad-resultados">
														<h:outputText
															rendered="#{gestionModeloController.listaRepuestosAsignadosImagenSeleccionada.size()>0}"
															value="Se encontraron #{gestionModeloController.listaRepuestosAsignadosImagenSeleccionada.size()} repuestos asignados a esta imagen." />
														<h:outputText
															rendered="#{gestionModeloController.listaRepuestosAsignadosImagenSeleccionada.size()==0}"
															value="No se encontraron repuestos asignados a esta imagen." />
													</div>
												</f:facet>
	
											</p:dataTable>
										</h:panelGroup>
									</div>
								</div>
							</div>
						</div>
					</div>
				</h:panelGroup>
			</p:dialog>
		
			<p:dialog id="popupAsignarRepuestoImagen"
					  widgetVar="wvPopupAsignarRepuestoImagen" header="Asignar repuesto"
					  resizable="false" modal="true">
				<h:panelGroup id="panelAsignarRepuestoImagen">
					<div class="panel-formulario" align="center">
	
						<p:panelGrid columns="2">
							<h:outputLabel value="C&#243;digo: " styleClass="label-general" />
							<h:outputText
								value="#{gestionModeloController.imagenRepuestoAsignar.repuesto.codigo}"
								styleClass="texto-general" />
	
							<h:outputLabel value="Descripci&#243;n: "
								styleClass="label-general" />
							<h:outputText
								value="#{gestionModeloController.imagenRepuestoAsignar.repuesto.nombre}"
								styleClass="texto-general" />
	
							<h:outputLabel value="Observaci&#243;n: " styleClass="label-general" />
							<p:inputText id="observacionAsignar" styleClass="input-general"
								style="text-transform:uppercase;"
								value="#{gestionModeloController.imagenRepuestoAsignar.observacion}"
								title="Observaci&#243;n del repuesto en la Imagen" maxlength="200">
							</p:inputText>
							
							<h:outputLabel value="Observaci&#243;n 2: " styleClass="label-general" />
							<p:inputText id="observacion2Asignar" styleClass="input-general"
										 style="text-transform:uppercase;"
										 value="#{gestionModeloController.imagenRepuestoAsignar.txtObsRepuesto2}"
										 title="Observaci&#243;n 2 del repuesto en la Imagen" maxlength="300"/>
	
							<h:outputLabel styleClass="label-general">Nro. posici&#243;n en la imagen: <span>( * )</span></h:outputLabel>
							<p:inputText id="posicionRepuestoAsignar"
										 styleClass="input-general"
										 value="#{gestionModeloController.imagenRepuestoAsignar.posicion}"
										 title="N&#250;mero del repuesto en la Imagen" required="true"
										 requiredMessage="Nro. posici&#243;n en la imagen: Requerido">
								<f:validator validatorId="numeroValidator" />
								<f:validator validatorId="numeroPositivoValidator" />
								<f:attribute name="campo" value="Nro. posici&#243;n en la imagen" />
								<p:ajax update="msgPosicionRepuestoAsignar" global="false" />
							</p:inputText>
	
							<h:outputLabel value="Cantidad referencial: " styleClass="label-general" />
							<p:inputText id="cantidadReferencialRepuestoAsignar"
										 styleClass="input-general"
										 value="#{gestionModeloController.imagenRepuestoAsignar.cantidadReferencial}"
										 title="Cantidad referencial">
								<f:validator validatorId="numeroValidator" />
								<f:validator validatorId="numeroPositivoValidator" />
								<f:attribute name="campo" value="Cantidad referencial" />
								<p:ajax update="msgCantidadReferencialRepuestoAsignar" global="false" />
							</p:inputText>
							
							<h:outputLabel styleClass="label-general">Nro secuencia : <span>( * )</span></h:outputLabel>
							<p:inputText id="numSeqRepuestoAsignar"
										 styleClass="input-general"
										 value="#{gestionModeloController.imagenRepuestoAsignar.numSeqNum}"
										 title="N&#250;mero secuencia" required="true" 
										 requiredMessage="Nro. secuencia: Requerido">
								<f:validator validatorId="numeroValidator" />
								<f:validator validatorId="numeroPositivoValidator" />
								<f:attribute name="campo" value="N&#250;mero secuencia" />
								<p:ajax update="msgNumSeqRepuestoAsignar" global="false" />
							</p:inputText>
	
							<h:outputLabel styleClass="label-general">Estado: <span>( * )</span></h:outputLabel>
							<p:selectOneMenu id="estadoImagenRepuestoAsignar"
											 styleClass="select-general"
											 value="#{gestionModeloController.imagenRepuestoAsignar.estado}">
								<f:selectItem itemLabel="Activo" itemValue="A" />
								<f:selectItem itemLabel="Inactivo" itemValue="I" />
							</p:selectOneMenu>
						</p:panelGrid>
						<div class="panel-botones" align="center">
							<p:commandButton value="Asignar" styleClass="buton-general"
								icon="ui-icon-disk" 
								action="#{gestionModeloController.asignarImagenRepuesto}"
								process=":formRepuestosImagenes:panelAsignarRepuestoImagen"
								update=":formRepuestosImagenes:panelAsignarRepuestoImagen, panelListaRepuestosAsignadosImagen, panelResultadosBusquedaRepuestos, :growl"
								oncomplete="ocultarDialogSiOperacionEsCorrecta(xhr, status, args, wvPopupAsignarRepuestoImagen)" />
							<span>&#160;</span>
							<p:commandButton styleClass="buton-general" value="Salir"
								global="false" icon="ui-icon-arrowreturn-1-w" process="@this"
								oncomplete="wvPopupAsignarRepuestoImagen.hide()" />
						</div>
						<div class="panelMessages">
							<p:message id="msgPosicionRepuestoAsignar" for="posicionRepuestoAsignar" />
							<p:message id="msgCantidadReferencialRepuestoAsignar" for="cantidadReferencialRepuestoAsignar" />
							<p:message id="msgNumSeqRepuestoAsignar" for="numSeqRepuestoAsignar" />
						</div>
	
					</div>
				</h:panelGroup>
			</p:dialog>
			
			<p:dialog id="popupEditarImagenRepuesto"
					  widgetVar="wvPopupEditarImagenRepuesto"
					  header="Editar asignaci&#243;n del repuesto"	
					  resizable="false" modal="true">
				<h:panelGroup id="panelEditarImagenRepuesto">
					<div align="center">
						<div class="panel-formulario" align="center">
							<p:panelGrid columns="2">
								<h:outputLabel value="C&#243;digo: " styleClass="label-general" />
	
								<h:outputText styleClass="texto-general" value="#{gestionModeloController.imagenRepuestoEditar.repuesto.codigo}" />
	
								<h:outputLabel value="Descripci&#243;n: " styleClass="label-general" />
								<h:outputText styleClass="texto-general" value="#{gestionModeloController.imagenRepuestoEditar.repuesto.nombre}" />
								
								<h:outputLabel value="Observaci&#243;n: " styleClass="label-general" />	
								<p:inputText id="observacionEditar" styleClass="input-general" style="text-transform:uppercase;"
											 value="#{gestionModeloController.imagenRepuestoEditar.observacion}"
											 title="Observaci&#243;n del repuesto en la Imagen" maxlength="200"/>
								
								<h:outputLabel value="Observaci&#243;n 2: " styleClass="label-general" />
								<p:inputText id="observacion2Editar" styleClass="input-general"
											 style="text-transform:uppercase;"
											 value="#{gestionModeloController.imagenRepuestoEditar.txtObsRepuesto2}"
											 title="Observaci&#243;n 2 del repuesto en la Imagen" maxlength="300"/>
	
								<h:outputLabel styleClass="label-general">Nro. posici&#243;n en la imagen: <span>( * )</span>
								</h:outputLabel>
								<p:inputText id="posicionRepuestoEditar"
									styleClass="input-general"
									value="#{gestionModeloController.imagenRepuestoEditar.posicion}"
									title="N&#250;mero posici&#243;n en la imagen" required="true"
									requiredMessage="Nro. Posici&#243;n en la imagen: Requerido">
									<f:validator validatorId="numeroValidator" />
									<f:validator validatorId="numeroPositivoValidator" />
									<f:attribute name="campo"
										value="N&#250;mero posici&#243;n en la imagen" />
									<p:ajax update="msgPosicionRepuestoEditar" global="false" />
								</p:inputText>
	
								<h:outputLabel value="Cantidad referencial: "
									styleClass="label-general" />
								<p:inputText id="cantidadReferencialRepuestoEditar"
									styleClass="input-general"
									value="#{gestionModeloController.imagenRepuestoEditar.cantidadReferencial}"
									title="Cantidad referencial">
									<f:validator validatorId="numeroValidator" />
									<f:validator validatorId="numeroPositivoValidator" />
									<f:attribute name="campo" value="Cantidad referencial" />
									<p:ajax update="msgCantidadReferencialRepuestoEditar" global="false" />
								</p:inputText>
								
								<h:outputLabel styleClass="label-general">Nro secuencia : <span>( * )</span></h:outputLabel>
								<p:inputText id="numSeqRepuestoEditar"
											 styleClass="input-general"
											 value="#{gestionModeloController.imagenRepuestoAsignar.numSeqNum}"
											 title="N&#250;mero secuencia" required="true" 
										 	 requiredMessage="Nro. secuencia: Requerido">
									<f:validator validatorId="numeroValidator" />
									<f:validator validatorId="numeroPositivoValidator" />
									<f:attribute name="campo" value="N&#250;mero secuencia" />
									<p:ajax update="msgNumSeqRepuestoEditar" global="false" />
								</p:inputText>
	
								<h:outputLabel styleClass="label-general">Estado: <span>( * )</span>
								</h:outputLabel>
								<p:selectOneMenu id="estadoImagenRepuestoEditar"
									styleClass="select-general"
									value="#{gestionModeloController.imagenRepuestoEditar.estado}">
									<f:selectItem itemLabel="Activo" itemValue="A" />
									<f:selectItem itemLabel="Inactivo" itemValue="I" />
								</p:selectOneMenu>
							</p:panelGrid>
						</div>
	
						<div class="panel-botones" align="center">
							<p:commandButton value="Guardar" styleClass="buton-general"
								icon="ui-icon ui-icon-disk" global="false"
								action="#{gestionModeloController.editarImagenRepuesto}"
								process=":formRepuestosImagenes:panelEditarImagenRepuesto"
								update="panelListaRepuestosAsignadosImagen, :growl, messagesImagenRepuestoEditar"
								oncomplete="ocultarDialogSiOperacionEsCorrecta(xhr, status, args, wvPopupEditarImagenRepuesto)" />
							<span>&#160;</span>
							<p:commandButton icon="ui-icon ui-icon-arrowreturn-1-w"
								global="false" styleClass="buton-general" value="Cancelar"
								process="@this" oncomplete="wvPopupEditarImagenRepuesto.hide()" />
						</div>
	
						<div class="panelMessages">
							<h:panelGroup id="messagesImagenRepuestoEditar">
								<p:message id="msgPosicionRepuestoEditar" for="posicionRepuestoEditar" />
								<p:message id="msgCantidadReferencialRepuestoEditar" for="cantidadReferencialRepuestoEditar" />
								<p:message id="msgNumSeqRepuestoEditar" for="numSeqRepuestoEditar" />
							</h:panelGroup>
						</div>
	
					</div>
				</h:panelGroup>
			</p:dialog>
			
			<p:dialog id="popupEliminarImagenRepuesto"
					  widgetVar="wvPopupEliminarImagenRepuesto"
					  header="Eliminar asignaci&#243;n del repuesto"
					  resizable="false" modal="true">
					  
				<h:panelGroup id="panelEliminarImagenRepuesto">
					<div class="panelEliminar">
						<h:outputText value="&#191;Est&#225; seguro que desea eliminar la asignaci&#243;n del repuesto a la imagen?" />
					</div>
					<div class="panel-botones">
						<p:commandButton value="Si" library="images"
							icon="ui-icon ui-icon-check" action="#{gestionModeloController.desasignarImagenRepuesto}"
							styleClass="buton-general" process="@this"
							update="panelListaRepuestosAsignadosImagen, panelResultadosBusquedaRepuestos, :growl"
							oncomplete="wvPopupEliminarImagenRepuesto.hide()" />
						<p:spacer width="5" />
						<p:commandButton icon="ui-icon ui-icon-close"
							styleClass="buton-general" value="No" process="@this"
							oncomplete="wvPopupEliminarImagenRepuesto.hide()" />
					</div>
				</h:panelGroup>
			</p:dialog>
			
		</h:form>
		
		<p:dialog id="dlgNumeroSa" widgetVar="wvPopUpAsignarNumero" header="Gesti&#243;n N&#250;meros SA" 
				  resizable="false" modal="true" height="400" width="350"> 
			<h:panelGroup layout="block" styleClass="popup-general">
				<h:form id="frmNumeroSa" prependId="false">
					<h:panelGroup id="tblNumeroSa" layout="block">
						<h:panelGrid columns="2">
							<h:outputText value="N&#250;meros SA"/>
							<h:panelGroup>
								<h:inputText id="txtCorrSa" value="#{gestionModeloController.nroCorrSa}" maxlength="10" size="10"
											 required="true" requiredMessage="N&#250;meros SA 1 es requerido" >
									<p:ajax update="msgCorrSa" global="false"/>
									<f:validator validatorId="alfanumericoValidator" />
									<f:param name="campo" value="N&#250;meros SA 1"/>
								</h:inputText>
								/
								<h:inputText id="txtExtSa" value="#{gestionModeloController.nroExtSa}" maxlength="5" size="8"
								 			 required="true" requiredMessage="N&#250;meros SA 2 es requerido">
									<p:ajax update="msgExtSa" global="false"/>
									<f:validator validatorId="alfanumericoValidator" />
									<f:param name="campo" value="N&#250;meros SA 2"/>
								</h:inputText>
							</h:panelGroup>
							
							<h:panelGroup />
							<p:commandButton value="Guardar" styleClass="buton-general" style="margin-bottom: 10px;"
											 icon="ui-icon ui-icon-disk" global="false"
											 action="#{gestionModeloController.agregarImagenRepuestoNroSa}"
											 process="tblNumeroSa" update="dtNumeroSa, :growl, msgCorrSa, msgExtSa, tblNumeroSa"/>
						</h:panelGrid>
						<p:message id="msgCorrSa" for="txtCorrSa"/>
						<p:message id="msgExtSa" for="txtExtSa"/>
					</h:panelGroup>
				
					<p:dataTable id="dtNumeroSa" var="numeroSa" style="margin-top: 20px; margin-bottom: 20px;"
								 value="#{gestionModeloController.listaNumeroSA}"
								 paginator="true" rows="7"
								 paginatorPosition="top"
								 paginatorTemplate="{FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"
								 currentPageReportTemplate="{currentPage} de {totalPages}"
								 emptyMessage="">
						
						<p:column filterBy="#{numeroSa.imagenRepuestoNroSaPK.nroSa}">
							<f:facet name="header">
								<h:outputText value="N&#250;mero" />
							</f:facet>
							<h:outputText value="#{numeroSa.imagenRepuestoNroSaPK.nroSa}" />
						</p:column>
						
						<p:column>
							<f:facet name="header">
								<h:outputText value=" " />
							</f:facet>
							
							<p:commandLink process="@this" global="false"
										   oncomplete="wvPopupEliminarNumeroSa.show()">
								<p:graphicImage library="images" name="eliminar.png" styleClass="icon-small" alt="Eliminar"
												title="Eliminar" />
								<f:setPropertyActionListener target="#{gestionModeloController.selectNumero}" 
															 value="#{numeroSa}"/>
							</p:commandLink>							
						</p:column>
					</p:dataTable>
					<h:panelGroup layout="block" styleClass="panel-botones">
						<p:commandButton icon="ui-icon ui-icon-close" immediate="true" global="false"
										 styleClass="buton-general" value="Salir" process="@this"
										 oncomplete="wvPopUpAsignarNumero.hide()" />
					</h:panelGroup>
				</h:form>
			</h:panelGroup>
		</p:dialog>
		
		<p:dialog id="popupEliminarNumeroSa" widgetVar="wvPopupEliminarNumeroSa"
				  header="Eliminar N&#250;mero SA" resizable="false" modal="true">
			<h:form styleClass="ui-widget" prependId="false">	  
				<h:panelGroup id="panelEliminarNumeroSa" layout="block">
					<div class="panelEliminar">
						<h:outputText value="&#191;Est&#225; seguro que desea eliminar el n&#250;mero SA?" />
					</div>
					<div class="panel-botones">
						<p:commandButton value="Si" library="images" icon="ui-icon ui-icon-check"
										 action="#{gestionModeloController.eliminarEliminarNumeroSa}"
										 styleClass="buton-general" process="@this" update=":growl, :frmNumeroSa:dtNumeroSa"
										 oncomplete="wvPopupEliminarNumeroSa.hide()" />
						<p:spacer width="5" />
						<p:commandButton icon="ui-icon ui-icon-close" immediate="true" global="false"
										 styleClass="buton-general" value="No" process="@this"
										 oncomplete="wvPopupEliminarNumeroSa.hide()" />
					</div>
				</h:panelGroup>
			</h:form>
		</p:dialog>
	</ui:define>
</ui:composition>